Computer systems are constantly improving in terms of speed, reliability, and processing capability. As a result, computers are able to handle more complex and sophisticated applications. As computers improve, performance demands placed on mass storage and input/output (I/O) devices increase. There is a continuing need to design mass storage systems that keep pace in terms of performance with evolving computer systems.
This invention particularly concerns the mass storage systems of the disk array type. Disk array data storage system have multiple storage disk drive devices which are arranged and coordinated to form a single mass storage system. There are three primary design criteria for mass storage systems: cost, performance, and availability. It is most desirable to produce memory devices that have a low cost per megabyte, a high input/output performance, and high data availability. "Availability" is the ability to access data stored in the storage system and the ability to insure continued operation in the event of some failure. Typically, data availability is provided through the use of redundancy wherein data, or relationships among data, are stored in multiple locations.
There are two common methods of storing redundant data. According to the first or "mirror" method, data is duplicated and stored in s two separate areas of the storage system. For example, in a disk array, the identical data is provided on two separate disks in the disk array. The mirror method has the advantages of high performance and high data availability due to the duplex storing technique. However, the mirror method is also relatively expensive as it effectively doubles the cost of storing data.
In the second or "parity" method, a portion of the storage area is used to store redundant data, but the size of the redundant storage area is less than the remaining storage space used to store the original data. For example, in a disk array having five disks, four disks might be used to store data with the fifth disk being dedicated to storing redundant data. The parity method is advantageous because it is less costly than the mirror method, but it also has lower performance and availability characteristics in comparison to the mirror method.
One problem encountered in the design of disk array data storage systems concerns the task of adding more storage disk drive devices to increase the storage capacity of the disk array. Conventional disk arrays require the following lengthy process. First, the data currently stored on the disk array is copied to an entirely separate storage device (such as a reel-to-reel tape storage system). Next, the new storage disks are added to the disk array. The entire disk array is then reconfigured to incorporate the new storage disks. Finally, the data is copied from the separate storage device back to the newly configured disk array. Unfortunately, the disk array is not accessible during this process and the data, which has been temporarily transferred to a separate backup system, is unavailable.